/**
 * 
 */
package spring.webapp.anmeldesystem.persistence.mapper;

import java.util.ArrayList;

import org.apache.ibatis.annotations.Param;

import spring.webapp.anmeldesystem.entity.Fachbereich;

/**
 * @author Songhua Cui
 * 
 */
public interface FachbereichMapper {
	/**
	 * @return
	 */
	ArrayList<Fachbereich> selectFachbereich();

	ArrayList<Long> selectFachbereichIdByStudent(long studentId);

	ArrayList<Long> selectFachbereichIdByProfessor(long professorId);

	/**
	 * 
	 * @param fbId
	 * @return
	 */
	Fachbereich selectFachbereichById(long fbId);

	Long selectFachbereichIdByName(String name);

	/**
	 * 
	 * @param fachbereich
	 */
	void insertFachbereich(Fachbereich fachbereich);

	/**
	 * 
	 * @param fachbereich
	 */
	void insertStudentInFachbereich(@Param("studentId") long studentId,
			@Param("fbId") long fbId);

	/**
	 * 
	 * @param fachbereich
	 */
	void insertProfessorInFachbereich(@Param("professorId") long professorId,
			@Param("fbId") long fbId);

	/**
	 * 
	 * @param fachbereich
	 */
	void updateFachbereich(Fachbereich fachbereich);

	/**
	 * 
	 * @param id
	 *            of faculty.
	 */
	void deleteFachbereich(long fbId);

	/**
	 * 
	 * @param studentId
	 *            id of student.
	 */
	void deleteStudentFromFB(long studentId);

	/**
	 * 
	 * @param professorId
	 *            id of professor.
	 */
	void deleteProfessorFromFB(long professorId);

}
